#ifndef FRUSTUM
#define FRUSTUM

#include "../../core/math/vector3d.h"

namespace sleek
{
    namespace node
    {
        namespace camera
        {
            enum FrustumSide { FSD_RIGHT = 0, FSD_LEFT = 1, FSD_BOTTOM = 2, FSD_TOP = 3, FSD_BACK = 4, FSD_FRONT = 5 };
            enum FrustumPlane { FPL_A = 0, FPL_B = 1, FPL_C = 2, FPL_D = 3 };
            struct Frustum
            {
                void calculate();
                bool point(core::math::vector3df, float tolerance);
                bool sphere(core::math::vector3df, float r);
                float m_Frustum[6][4];
            };
            void NormalizePlane(float frustum[6][4], int side);
        }
    }
}

#endif
